﻿/*
=======================================================
    UserRole【用户与角色】
=======================================================
*/

namespace Services
{
    public interface IUserRoleRepository : IRepository<UserRole>
    {
        List<UserRole> GetUserRoleByRoleIDs(params int[] roleIDs);
        List<int> GetMeRoleIDs();
    }


    public class UserRoleRepository : BaseRepository<UserRole>, IUserRoleRepository
    {
        public UserRoleRepository(ISqlSugarClient dB, ICurrentUser currentUser, IQuery<UserRole> query)
            : base(dB, currentUser, query)
        {
        }

        #region 根据角色获取UserRole
        public List<UserRole> GetUserRoleByRoleIDs(params int[] roleIDs)
        {
            return _query.GetQueryable().Where(x => roleIDs.Contains(x.RoleID)).ToList();
        }
        #endregion

        #region 得到当前登录用户的角色ID，给Me对象用
        public List<int> GetMeRoleIDs()
        {
            if (_currentUser.CurrentUserInfo.LoginUserType == LoginUserType.集团)
            {
                return _query.GetQueryable().Where(x => x.UserID == _currentUser.CurrentUserInfo.UserID).Select(x => x.RoleID).ToList();
            }
            else if (_currentUser.CurrentUserInfo.LoginUserType == LoginUserType.监管部门)
            {
                return null;
            }
            else
            {
                return null;
            }
        }
        #endregion
    }
}
